10 POKE 53280,0:POKE 53281,11 20 X=X+1 30 IF X=1 THEN PRINT"[147]LOADING MACHINE CODE....":LOAD"MAZE.MC",8,1 100 GOSUB 10000 110 PRINT"[147][208]AUSE FOR THOUGHT...":GOSUB 2080 120 GOSUB 1000 130 IF N=42 AND DI=5 THEN 30000 140 ON G GOSUB 2000 150 IF EA=1 THEN PRINT"[147][197]ATEN !!":GOTO 30010 160 GOTO 120 170 J1=PEEK(56320):IF J1<>127 THEN J=J1 1000 J1=PEEK(56320):IF J1<>127 THENJ=J1 1010 U=J=126:D=J=125:L=J=123:R=J=119 1020 O=ME:GOSUB 1500 1030 N=PEEK(M) 1040 IF N<>32 AND N<>90 AND N<>42 THEN 1090 1050 IF N=42 AND DI<5 THEN 1090 1060 ME=M:POKE O,32 1070 IF N=90 THEN DI=DI+1:POKE 1955,DI+48 1080 IF DI=5 AND N=90 THEN PRINT"[144]GO.FOR.THE.EXIT!!!!"; 1090 IF CH=87 THEN CH=81:GOTO 1110 1100 CH=87 1110 POKE ME+54272,14:POKE ME,CH 1120 RETURN 1500 M=ME+L-R+U*40-D*40:RETURN 2000 Q=Q-1:IF Q<0 THEN Q=3 2010 W=PEEK(PO+T(Q)) 2020 IF W=32 OR W=90 THEN 2060 2030 IF W=81 OR W=87 THEN EA=1:GOTO 2060 2040 IF Q<3 THEN Q=Q+1: GOTO2010 2050 Q=0:GOTO 2010 2060 POKE PO,Z:PO=PO+T(Q):POKE PO+54272,0:Z=PEEK(PO):POKE PO,43 2070 RETURN 2080 PRINT"" 2090 SYS 52600,0,18,10,0,0,88:PRINT"-DIAMONDS: 0-"CHR$(142) 2100 FOR CO=1 TO 5 2110 P=1065+INT(RND(1)*19)*2+INT(RND(1)*10)*80 2120 POKE P,90:POKE 54272+P,0 2130 NEXT 2140 ME=1025:DI=0:CH=81:EA=0 2150 T(1)=-40:T(3)=40:T(2)=-1:T(0)=1 2160 PO=1901:Z=32:S=5 2170 POKE 1941,42 2180 RETURN 10000 PRINT"[147][205]AZE [196]EMO" 10010 PRINT"[183][183][183][183][183][183][183][183][183]" 10020 PRINT"[212]HIS MACHINE CODE PROGRAM CONSTRUCTS" 10030 PRINT"RECTANGULAR MAZES DEPENDING ON" 10040 PRINT"SPECIFIED DIMENSIONS. [193]S IT IS IN" 10050 PRINT"MACHINE CODE, IT IS VERY FAST." 10060 PRINT"[212]YPICALLY A FULL SCREEN SIZE MAZE WILL" 10070 PRINT"TAKE LESS THAN A SECOND TO DESIGN." 10080 PRINT"[194]EFORE STARTING THE MAZE, YOU WILL" 10090 PRINT"NEED TO SAY WHICH PAGE IN MEMORY THE" 10100 PRINT" MAZE IS TO BE PLACED. [193] DEFAULT" 10110 PRINT" POSITION '0' WILL AUTOMATICALLY PUT" 10120 PRINT" THE MAZE AT THE END OF [194][193][211][201][195] MEMORY." 10130 PRINT"[217]OU WILL ALSO NEED TO STATE THE" 10140 PRINT" HORIZONTAL AND VERTICAL DIMENSIONS" 10150 PRINT" AS WELL AS THE [216],[217] COORDINATES ON" 10160 PRINT" SCREEN (THIS MAKES NO DIFFERENCE ON A" 10170 PRINT" PRINTER). 10180 [141] 20000 10190 [153]"LOAD(null)AZE STR$EMO" 10200 [153]" USRUSRUSRUSRUSRUSRUSRUSRUSR" 10210 [153]"(null)HE SYNTAX FOR THE (null)AZE PROGRAM IS:" 10220 [153]" (null)(null)(null) 52600,(null)AGE,LEFT$ORIZONTAL,(null)ERTICAL," 10230 [153]" (null) (null)OSITION (0-39),(null) (null)OSITION (0-24)," 10240 [153]" LENHARACTER (E.G. '65' FOR 'A' '88'='X')" 10250 [153]"0,0 FOR (null),(null) IS THE TOP-LEFT OF SCREEN" 10260 [153]"(null)O PRINT A DUPLICATE OF A MAZE, THE" 10270 [153]" SYNTAX IS:" 10280 [153]"(null)(null)(null) 53010,(null) (null)OS,(null) (null)OS,LENHARACTER" 10290 [153]"(null)OU MAY PREFER TO DEFINE THESE:" 10300 [153]"(null)(null)=52600 : (null)(null)=53010 AND USE (null)(null)(null) (null)(null),.." 10310 [153]"TO SAVE REMEMBERING THOSE ADDRESSES." 10320 [141] 20000 10330 [153]"LOAD(null)AZE STR$EMO" 10340 [153]"USRUSRUSRUSRUSRUSRUSRUSRUSR" 10350 [153]"ATN FULL SCREEN SIZE MAZE HAS 18,10" 10360 [153]" AS LEFT$ORIZONTAL/VERTICAL DIMENSIONS." 10370 [153]" (null)HE MINIMUM IS 1,1 AND MAXIMUM LEFT$ORIZ" 10380 [153]" DIMENSION IS 63 (THIS IS OFTEN" 10390 [153]" TOO BIG FOR MOST PRINTERS ANYWAY!)" 10400 [141] 20000 10410 [153]"LOAD(null)AZE STR$EMO" 10420 [153]"USRUSRUSRUSRUSRUSRUSRUSRUSR" 10430 [153]"(null)RY SOME MAZES:" 10440 [133] "LEFT$ORIZ,(null)ERT: 18,10CMDCMDCMDCMDCMDCMDCMD";H,V 10450 [139] H[177]18 [167] H[178]18 10460 [139] H[179]1 [167] H[178]1 10470 [139] V[177]10 [167] V[178]10 10480 [139] V[179]1 [167] V[178]1 10490 [133] " (null),(null) (null)OSITION: 0,0CMDCMDCMDCMDCMD";X,Y 10500 [139] X[177]39 [167] X[178]39 10510 [139] X[179]0 [167] X[178]0 10520 [139] Y[179]0 [167] Y[178]0 10530 [139] Y[177]24 [167] Y[178]24 10540 [133] " LENHARACTER: 255CMDCMDCMDCMDCMD";C 10550 C[178][182](C):[139] C[177]255 [167] C[178]255 10560 [139] C[179]33 [167] C[178]33 10570 [141] 20000:[153]"LOAD(null)HINKING...." 10580 [158] 52600,0,H,V,X,Y,C 10590 [133]"ATNNOTHER MAZE YES (null).(null).CMDCMDCMDCMDCMDCMDCMDCMDCMDCMD";K$ 10600 [139] [200](K$,1)[178]"Y" [167] 10410 10610 [153]"LOAD(null)AZE STR$EMO" 10620 [153]"USRUSRUSRUSRUSRUSRUSRUSRUSR" 10630 [153]"(null)HE MAZES CAN BE PRINTED ON A PRINTER" 10640 [153]"BY:" 10650 [153]"(null)(null)VAL(null) 4,4:LEN(null)STR$ 4:(null)(null)(null) 52600,...." 10660 [153]"(null)RINT#4:CLOSE 4 10670 PRINT"[217]OU CAN ALSO CHANGE THE PITCH AND" 10680 PRINT" SIZE BEFOREHAND IF YOUR PRINTER CAN DO" 10690 PRINT" THIS. [214]ERY SMALL CHARACTER SIZES GIVE" 10700 PRINT" SOME VERY TRICKY MAZES!" 10710 GOSUB 20000 10720 PRINT"[147][205]AZE [196]EMO" 10730 PRINT"[183][183][183][183][183][183][183][183][183]" 10740 PRINT"[201] HAVE WRITTEN A LITTLE GAME TO SHOW" 10750 PRINT" ONE POSSIBLE USE OF THE ROUTINE. [217]OU" 10760 PRINT" MUST COLLECT THE FIVE BLACK DIAMONDS" 10770 PRINT" AROUND THE MAZE THEN HEAD FOR THE EXIT" 10780 PRINT" (AN ASTERISK AT THE BOTTOM-RIGHT OF" 10790 PRINT" THE MAZE.)" 10800 PRINT"[195]ONTROL IS VIA [202]OYSTICK IN [208]ORT [201][201]." 10810 PRINT" [217]OU CAN ALSO HAVE A LITTLE MEANIE TO" 10820 PRINT" AVOID IF YOU WANT ('+')." 10830 INPUT "[196]O YOU WANT THIS YES PLEASE![157][157][157][157][157][157][157][157][157][157][157][157][157]";K$ 10840 IF LEFT$(K$,1)="Y" THEN G=1 20000 PRINT"[208]RESS A [203]EY...."; 20010 GET K$:IF K$="" THEN 20010 20020 RETURN 30000 PRINT"[147][215]ELL [196]ONE !" 30010 INPUT"[196]O YOU WANT TO PLAY THAT AGAIN";K$ 30020 IF LEFT$(K$,1)="Y" THEN 110 30030 PRINT"[147][210]EMEMBER.....[212]HERE'S ONLY ONE WAY [212]HROUGH....." 30040 END